home *** CD-ROM | disk | FTP | other *** search
- 10000 '
- 10010 ' 『尽せり』 サンプル
- 10020 ' T-MENU 壁紙張り替えツール
- 10030 ' Programed by きょうてん
- 10040 ' <<< [SEL16.BAS]をマージしてセーブし直してください >>>
- 10050 S_右下X=319:S_右下Y=239
- 10060 DIM WORK%(320*120-1),I%(255)
- 10070 MAXX=640-1:MAXY=480-1
- 10080 ON ERROR GOTO *ERROR
- 10090 BG$="\TMENU.TIF":S_FILE$="BGSEL.CNF"
- 10100 OPEN "I",#1,S_FILE$
- 10110 A$="":WHILE A$=""
- 10120 LINE INPUT#1,A$:IF LEFT$(A$,2)="//" OR A$="" THEN A$=""
- 10130 WEND:BG$=A$
- 10140 *MAIN
- 10150 SCREEN@ 1:CLS:S_FILE$=""
- 10160 SYMBOL(10,80),"BGSELECTOR",3,5,7,,,7,2
- 10170 *ENTRY ER=0
- 10180 '=-=-=-=-=-== 呼び出し基本形 -=-=-=-=-=-=
- 10190 S_INPUT=0:S_PATH=0:S_KAKU$=".TIF":S_MES$="BGSELECT"
- 10200 GOSUB *S_SEL:IF S_FILE$="" THEN END
- 10210 '=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- 10220 A=INSTR(S_FILE$,".")
- 10230 IF A>0 THEN A$=MID$(S_FILE$,A,4) ELSE A$=""
- 10240 IF A$<>".TIF" THEN
- 10250 M$=".TIFファイルを指定してね":GOSUB *YN:GOTO *ENTRY
- 10260 ENDIF
- 10270 GOSUB *LOADTIF
- 10280 IF ER THEN GOSUB *YN:GOTO *MAIN
- 10290 IF JJ=1 OR JJ=4 THEN SCREEN@ 0
- 10300 IF JJ=8 THEN SCREEN@ 2
- 10310 IF JJ=16 THEN SCREEN@ 1
- 10320 MOUSE 1,,,0:LOAD@ S_FILE$,(0,0):MOUSE 1,,,1
- 10330 IF JJ=8 THEN GOSUB *TIF256
- 10340 *SAVE
- 10350 A=MOUSE(3,1):M$="この絵でいい-左 選び直す-右":GOSUB *YN
- 10360 IF MOUSE(3,1) THEN *ENTRY
- 10370 IF MOUSE(0)=0 AND MOUSE(1)=0 AND JJ<>1 AND JJ<>4 THEN
- 10380 WHILE MOUSE(2,0):WEND:GOSUB *WHIPSCUT:END
- 10390 ENDIF
- 10400 IF JJ<>16 THEN SAVE@ BG$,(0,0)-(OX,OY),1 ELSE SAVE@ BG$,(0,0)-(OX,OY)
- 10410 END
- 10420 '======================== TIFFを読む
- 10430 *LOADTIF
- 10440 START&=VARPTR(WORK%(0)):FILE$=S_FILE$+CHR$(0)
- 10450 RET&=CALLM(0,12,20,START&,VARPTR(FILE$),0,4096)
- 10460 P&=0
- 10470 'ヘッダ
- 10480 IF PEEK([20]START&,4)<>&H002A4949 THEN M$="標準TIFFじゃないっす":ER=-1:RETURN
- 10490 P&=START&+PEEK([20]START&+4,4)
- 10500 'IFD
- 10510 JJ=4:II=PEEK([20]P&,2):P&=P&+2
- 10520 FOR I=0 TO II-1
- 10530 A=PEEK([20]P&,2):A&=PEEK([20]P&+8,2)
- 10540 IF A=&H102 THEN
- 10550 IF PEEK([20]P&+4,4)=3 THEN M$="フルカラーTIFFは読めんす":ER=-1:RETURN
- 10560 JJ=A&
- 10570 ENDIF
- 10580 IF A=&H100 THEN OX=A&-1
- 10590 IF A=&H101 THEN OY=A&-1
- 10600 P&=P&+12
- 10610 NEXT
- 10620 RETURN
- 10630 '====================== 32768色化
- 10640 *TIF256
- 10650 MOUSE 1,,,0
- 10660 IF OX>MAXX THEN OX=MAXX
- 10670 IF OY>MAXY THEN OY=MAXY
- 10680 IF OX>319 OR OY>239 THEN
- 10690 FOR Y=0 TO OY STEP 2
- 10700 GET@A(0,Y)-(OX,Y),WORK%:PUT@A(0,Y\2)-(OX,Y\2),WORK%,,.5!
- 10710 NEXT:OX=OX\2:OY=OY\2
- 10720 ENDIF
- 10730 GET@A(0,0)-(OX,OY),WORK%
- 10740 FOR I=0 TO 255
- 10750 OUT &HFD90,I
- 10760 I%(I)=INP(&HFD92)\8+(INP(&HFD94)\8)*32+(INP(&HFD96)\8)*1024
- 10770 NEXT
- 10780 SCREEN@ 1:PIC&=VARPTR(WORK%(0))
- 10790 FOR Y=0 TO OY:P%=0
- 10800 FOR X=0 TO OX
- 10810 A%=PEEK([20]PIC&):S_SEL%(P%)=I%(A%):P%=P%+1:PIC&=PIC&+1
- 10820 NEXT:PUT@A(0,Y)-(OX,Y),S_SEL%
- 10830 NEXT
- 10840 JJ=16:MOUSE 1,,,1:RETURN
- 10850 '==================WHIPSサイズ切り出し
- 10860 *WHIPSCUT
- 10870 SX=0:SY=0:OX=229:OY=229
- 10880 MOUSE 4,0,0,319,239
- 10890 GOSUB *WAKU:X=-1
- 10900 WHILE MOUSE(2,1)+MOUSE(2,0)=0
- 10910 XX=X:YY=Y:X=MOUSE(0):Y=MOUSE(1)
- 10920 IF X<>XX OR Y<>YY OR MOUSE(2,0)=-1 THEN
- 10930 GOSUB *WAKU
- 10940 SX=X-OX:IF SX<0 THEN SX=0
- 10950 SY=Y-OY:IF SY<0 THEN SY=0
- 10960 GOSUB *WAKU
- 10970 ENDIF
- 10980 WEND
- 10990 IF MOUSE(2,1) THEN WHILE MOUSE(2,1):WEND:GOSUB *WAKU:RETURN *SAVE
- 11000 LINE(SX,SY)-(SX+OX,SY+OY),PSET,7,B
- 11010 S_INPUT=-1:S_MES$="WHIPS":GOSUB *S_SEL
- 11020 IF S_FILE$<>"" THEN BG$=S_FILE$:SAVE@ BG$,(SX,SY)-(SX+OX,SY+OY):RETURN
- 11030 RETURN *ENTRY
- 11040 *WAKU LINE(SX,SY)-(SX+OX,SY+OY),XOR,2,B,&HEEEE:RETURN
- 11050 *YN
- 11060 GET@A(0,0)-(511,15),WORK%
- 11070 LINE(0,0)-(511,15),PSET,1,BF
- 11080 SYMBOL(0,0),M$,1,1,7:MOUSE 1,,,1
- 11090 WHILE MOUSE(2,0)+MOUSE(2,1)<>0:WEND
- 11100 WHILE MOUSE(2,0)+MOUSE(2,1)=0:WEND
- 11110 PUT@A(0,0)-(511,15),WORK%
- 11120 RETURN
- 11130 *ERROR
- 11140 IF ERR=55 THEN
- 11150 M$="ファイル名が変だ!"
- 11160 ELSE IF ERR=73 THEN
- 11170 M$="ライトプロテクトかかってます"
- 11180 ELSE IF ERR=75 THEN
- 11190 M$="アクセスが拒否されちゃった"
- 11200 ELSE IF ERR=72 THEN
- 11210 M$="ディスクが使用可能になってないよ"
- 11220 ELSE IF ERR=67 THEN
- 11230 M$="このディスクすでにいっぱいかも"
- 11240 ELSE IF ERR=65 THEN
- 11250 M$="ディレクトリが一杯になったぞ"
- 11260 ELSE IF ERR=63 THEN
- 11270 IF S_FILE$="BGSEL.CNF" THEN RESUME *MAIN
- 11280 M$="ファイルが見つかりません":GOSUB *YN:RESUME *MAIN
- 11290 ELSE IF ERR=64 THEN
- 11300 KILL BG$:RESUME
- 11310 ELSE
- 11320 M$="おおっと"+STR$(ERL)+",ERROR"+STR$(ERR)
- 11330 GOSUB *YN
- 11340 RESUME *ENTRY
- 11350 ENDIF
- 11360 GOSUB *YN:RESUME NEXT